HAL FMAC IRQ Handler and Callbacks function migration

This section provides information about the HAL FMAC function migration.

HAL FMAC IRQ handler function

HAL1

HAL2

HAL_FMAC_IRQHandler(FMAC_HandleTypeDef *hfmac);
HAL_FMAC_IRQHandler(hal_fmac_handle_t *hfmac);

HAL FMAC error callback

HAL1

HAL2

HAL_FMAC_ErrorCallback(FMAC_HandleTypeDef *hfmac);
HAL_FMAC_ErrorCallback(hal_fmac_handle_t *hfmac);

HAL FMAC filter configuration callback

HAL1

HAL2

HAL_FMAC_FilterConfigCallback(FMAC_HandleTypeDef *hfmac);
Removed, as it is not needed in HAL2.

HAL FMAC filter preload callback

HAL1

HAL2

HAL_FMAC_FilterPreloadCallback(FMAC_HandleTypeDef *hfmac);
HAL_FMAC_PreloadCpltCallback(hal_fmac_handle_t *hfmac);

HAL FMAC data available callback

HAL1

HAL2

HAL_FMAC_GetDataCallback(FMAC_HandleTypeDef *hfmac);
HAL_FMAC_WriteX1CpltCallback(hal_fmac_handle_t *hfmac);

HAL FMAC half data available callback

HAL1

HAL2

HAL_FMAC_HalfGetDataCallback(FMAC_HandleTypeDef *hfmac);
HAL_FMAC_WriteX1HalfCpltCallback(hal_fmac_handle_t *hfmac);

HAL FMAC half output data ready callback

HAL1

HAL2

HAL_FMAC_HalfOutputDataReadyCallback(FMAC_HandleTypeDef *hfmac);
HAL_FMAC_ReadYHalfCpltCallback(hal_fmac_handle_t *hfmac);

HAL FMAC output data ready callback

HAL1

HAL2

HAL_FMAC_OutputDataReadyCallback(FMAC_HandleTypeDef *hfmac);
HAL_FMAC_ReadYCpltCallback(hal_fmac_handle_t *hfmac);

HAL FMAC callback register functions

In HAL1, the function HAL_FMAC_RegisterCallback is used to register various FMAC callbacks through a single function with a specific callback ID, whereas, in HAL2, distinct functions are available to register each specific FMAC callback.

HAL 1

HAL 2

FMAC preload callback

HAL_FMAC_RegisterCallback(&hfmac,
                          HAL_FMAC_FILTER_PRELOAD_CB_ID,
                          User_FilterPreloadCallback);
HAL_FMAC_RegisterPreloadCpltCallback(&hfmac,
                                    User_FMAC_Preload);

FMAC error callback

HAL_FMAC_RegisterCallback(&hfmac,
                          HAL_FMAC_ERROR_CB_ID,
                          User_ErrorCallback);
HAL_FMAC_RegisterErrorCallback(&hfmac,
                               User_FMAC_Error);

FMAC get data complete callback

HAL_FMAC_RegisterCallback(&hfmac,
                          HAL_FMAC_GET_DATA_CB_ID,
                          User_GetDataCallback);
HAL_FMAC_RegisterWriteX1CpltCallback(&hfmac,
                                     User_FMAC_WriteX1Cplt);

FMAC half get data complete callback

HAL_FMAC_RegisterCallback(&hfmac,
                          HAL_FMAC_HALF_GET_DATA_CB_ID,
                          User_HalfGetDataCallback);
HAL_FMAC_RegisterWriteX1HalfCpltCallback(&hfmac,
                                         User_FMAC_WriteX1HalfCplt);

FMAC output data ready callback

HAL_FMAC_RegisterCallback(&hfmac,
                          HAL_FMAC_OUTPUT_DATA_READY_CB_ID,
                          User_OutputDataReadyCallback);
HAL_FMAC_RegisterReadYCpltCallback(&hfmac,
                                   User_FMAC_ReadYCplt);

FMAC half output data ready callback

HAL_FMAC_RegisterCallback(&hfmac,
                          HAL_FMAC_HALF_OUTPUT_DATA_READY_CB_ID,
                          User_HalfOutputDataReadyCallback);
HAL_FMAC_RegisterReadYHalfCpltCallback(&hfmac,
                                       User_FMAC_ReadYHalfCplt);

Related concept: Individual callback registration APIs replace global register and unregister functions


HAL FMAC callback unregister functions

In HAL1, the function HAL_FMAC_UnRegisterCallback is used to register various FMAC callbacks through a single function with a specific callback ID, whereas, in HAL2, distinct functions are available to register each specific FMAC callback.

HAL 1

HAL 2

FMAC preload callback

HAL_FMAC_UnRegisterCallback(&hfmac,
                            HAL_FMAC_FILTER_PRELOAD_CB_ID);
HAL_FMAC_RegisterPreloadCpltCallback(&hfmac,
                                     HAL_FMAC_PreloadCpltCallback);

FMAC error callback

HAL_FMAC_UnRegisterCallback(&hfmac,
                            HAL_FMAC_ERROR_CB_ID);
HAL_FMAC_RegisterErrorCallback(&hfmac,
                               HAL_FMAC_ErrorCallback);

FMAC get data complete callback

HAL_FMAC_UnRegisterCallback(&hfmac,
                            HAL_FMAC_GET_DATA_CB_ID);
HAL_FMAC_RegisterWriteX1CpltCallback(&hfmac,
                                     HAL_FMAC_WriteX1CpltCallback);

FMAC half get data complete callback

HAL_FMAC_UnRegisterCallback(&hfmac,
                            HAL_FMAC_HALF_GET_DATA_CB_ID);
HAL_FMAC_RegisterWriteX1HalfCpltCallback(&hfmac,
                                         HAL_FMAC_WriteX1HalfCpltCallback);

FMAC output data ready callback

HAL_FMAC_UnRegisterCallback(&hfmac,
                            HAL_FMAC_OUTPUT_DATA_READY_CB_ID);
HAL_FMAC_RegisterReadYCpltCallback(&hfmac,
                                   HAL_FMAC_ReadYCpltCallback);

FMAC half output data ready callback

HAL_FMAC_UnRegisterCallback(&hfmac,
                            HAL_FMAC_HALF_OUTPUT_DATA_READY_CB_ID);
HAL_FMAC_RegisterReadYHalfCpltCallback(&hfmac,
                                       HAL_FMAC_ReadYHalfCpltCallback);

Related concept: Individual callback registration APIs replace global register and unregister functions